/**
	AuroraSprite holds whole texture coord data.
	hgeSprite only stands for a part of texture.

	DEMOSprite is a sub class of AuroraSprite.
	
	We use	member AuroraSprite _pSpriteData holds texture coord data,
	use member HTEXTURE _tex holds texture.

	When we render texture, we use local variable hgeSprite to render a part of texture on screen.
*/

#ifndef	_DEMO_SPRITE_H_
#define	_DEMO_SPRITE_H_

#include"..\..\..\include\hgesprite.h"
#include"AuroraSprite.h"

class DEMOSprite : public AuroraSprite
{
private:
	HGE				*_hge;
protected:
	HTEXTURE		_tex;

public:
	DEMOSprite(char* texName,char* sprDataName);
	~DEMOSprite();

	void render2D(int u,int v,int ul,int vl,
					int x,int y,
					float rot = 0.0f,float scale = 1.0f,DWORD col = 0xFFFFFFFF,bool bTrans = false,
					float hotSpotX = 0.0f,float hotSpotY = 0.0f) const;

	void paintModule(int curModuleIdx,int x,int y,int ox,int oy,
							float rot = 0.0f,float scale = 1.0f,DWORD col = 0xFFFFFFFF,bool bTrans = false) const;
	
	void paintFModule(string curModuleId,int x,int y,int ox,int oy,
							float rot = 0.0f,float scale = 1.0f,DWORD col = 0xFFFFFFFF,bool bTrans = false) const;

	void paintFrame(int curFrameIdx,int x,int y,int ox,int oy,
							float rot = 0.0f,float scale = 1.0f,DWORD col = 0xFFFFFFFF,bool bTrans = false) const;

	void paintAFrame(string curFrameId,int x,int y,int ox,int oy,
							float rot = 0.0f,float scale = 1.0f,DWORD col = 0xFFFFFFFF,bool bTrans = false) const;
};
#endif